<?php
namespace app\index\controller;
use think\Controller;
use think\Session;
use think\Cookie;
use think\Db;
use lib\wechtOauth;
use lib\Curl;
use lib\WechatJs;
class Base extends Controller{
	protected $_uid=0;
	protected $_user=[];
	protected $_data=[];		//接口数据
	protected $_rept=[];		//返回的数据
	protected $_con;			//访问控制器
	protected $_act;			//请求方法
	
	public function _initialize(){
		header("Content-Type:text/html; charset=utf-8");			//设置程序编码
		header('Access-Control-Allow-Origin:*');  					// 指定允许其他域名访问
		header('Access-Control-Allow-Methods:GET,POST,OPTIONS');  	// 响应类型  
		header('Access-Control-Allow-Headers:x-requested-with,content-type,Authorization,userId');	//允许的请求头信息
		header('Access-Control-Expose-Headers:Authorization,userId');
		header('Access-Control-Allow-Credentials: true');
		if(request()->isOptions()){
			header("HTTP/1.1 200 Ok");
			exit;
		}
		$this->_con=strtoupper(request()->controller());	//请求的控制器
		$this->_act=strtoupper(request()->action());		//请求的方法
		//根据访问的控制器和方法，判断是否做登录验证
//		!in_array($this->_con, ['INDEX']) && 
		//无需登录状态下，允许请求的方法
		$easy=[
			'LOGIN',	//静默登录
			'BANNERS',	//获取广告轮播图
			'HOUSE',	//获取单个房源详情
		];
		if(!in_array($this->_act, $easy)){
			$this->check_login();	//验证登录状态
		}
		
		$this->_doData();	//参数处理
//		$this->wechat_js();	//各页面初始化微信jsAPI
		//本地测试，无需验证登录
//		$this->_uid=$uid='1';
//		$this->_user=Db::name('users')->where('uid',$uid)->find();
//		Cookie::set('uid','1',['expire'=>1728000]);
//		$this->_doData();	//参数处理
	}
	private function check_login(){
		if(!Cookie::has('uid') || Cookie::get('uid')==''){
			echo json_encode(rel(-2,'未登录'));
			exit;
		}else{
			$this->_uid=$uid=Cookie::get('uid');
			$user=Db::name('users')->where('id',$uid)->find();
			if(!$user || $user['del']==1){
				echo json_encode(rel(-1,'该用户不存在'));
				exit;
			}
			if($this->_con=='TENANT' && $user['type']<2){ //准租户
				echo json_encode(rel(-1,'您还不是认证用户'));
				exit;
			}
			if($this->_con=='OWER' && $user['type']!=3){ //租户
				echo json_encode(rel(-1,'您还不是业主'));
				exit;
			}
			$this->_user=$user;
		}
	}
	//网页授权登录
//	private function login(){
//		$param=request()->param();
//		
//		$oauth=new wechtOauth();
//		if(!empty($param['code'])){		//授权后带code跳转
//			$code=$param['code'];		//获取到的code
//			$access=$oauth->get_access_token($code);
//			if($access){				//包含access_token expires_in openid scope refresh_token
//				$userinfo=$oauth->get_user_info($access['access_token'],$access['openid']);
//				$data=[
//					'openid'	=> $userinfo['openid'],
//					'sex'		=> $userinfo['sex'],
//					'nickname'	=> $userinfo['nickname'],
//					'province_name'	=> $userinfo['province'],
//					'city_name'	=> $userinfo['city'],
//					'head_pic'	=> $userinfo['headimgurl'],
//					'reg_time'	=> time()
//				];
//				$user=Db::name('users')->where('openid',$userinfo['openid'])->find();
//				if(!$user){			//新用户，进行注册
//					$data['level_card']=nonce_str(6);	//用户卡号
//					if(!empty($param['source_uid'])){	//自定义额外的参数，推荐人的主键ID
//						$source_user=Db::name('users')->where('uid',$param['source_uid'])->find();
//						if(!empty($source_user)){
//							$data['first_layer']=$source_user['uid'];
//							if(!empty($source_user['first_layer'])){
//								$data['second_layer']=$source_user['first_layer'];
//							}
//						}
//					}
//					$uid=Db::name('users')->insertGetId($data);
//					if(!empty($param['source_uid'])){
//						score($param['source_uid'],$uid,10);
//					}
//				}else{				//已有用户，更新数据（每个月跟新一次）
//					unset($data['openid']);
//					unset($data['reg_time']);
//					Db::name('users')->where('openid',$userinfo['openid'])->update($data);
//					$uid=$user['uid'];
//				}
//				//将用户主键存为cookie
//				Cookie::set('uid',$uid,['expire'=>1728000]);
//			}else{
//				die('获取token失败，稍后重试');
//			}
//		}else{
//			//$uid = !empty($param['uid']) ? $param['uid'] : 0;	//如果传递了uid代表由他人推荐，则赋给微信授权参数state
//			$source_url=request()->url(true);	//原始请求地址
//			$url=$oauth->get_authorize_url($source_url);
//			$this->redirect($url);	//跳转到微信端授权页面
//		}
//	}
    //作用：1、获取用户访问的模块、控制器、操作，2、将传递过来的json数据转化成数组，3、获取用户ip
	private function _doData(){
//		if(request()->isAjax()){
//			$json=$this->request->post('data','','htmlspecialchars_decode');
//			$data=json_decode($json,true);	
//		}else{
//			$data=request()->param();
//		}
		$json=$this->request->post('data','','htmlspecialchars_decode');
		$data=json_decode($json,true);
		$this->_data=$data;
//		$ip=request()->ip();
//		if(empty($ip)){
//			$this->_data['addip'] = isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:$_SERVER['REMOTE_ADDR'];
//		}else{
//			$this->_data['addip']=$ip;
//		}
	}
	//初始化魏欣欣jsAPI配置
//	private function wechat_js(){
//		//对于不需要方法，可以省去微信js配置初始化
//		if(!request()->isAjax() && !in_array($this->_act, ['share'])){
//			$wejssdk=new WechatJs();
//			$js_config=$wejssdk->js_api_config();
//			$js_config['uid']=$this->_uid;
//			$this->assign('js_config',$js_config);	
//		}
//	}
}
